Update category settings.
  • 12 May 2026
  • 10 Minutes to read
  • Contributors
  • Dark
    Light

Update category settings.

  • Dark
    Light

Article summary

Patch
/v3/projects/{project_id}/categories/{category_id}/settings

Updates SEO settings, tags, and visibility flags using partial update semantics -- only fields present in the request body are modified. Supports setting the status indicator and its optional expiry date. Retrieve current settings first via GET /v3/projects/{projectId}/categories/{categoryId}/settings to avoid unintentionally clearing fields.

Security
OAuth

All V3 endpoints require a Bearer token. Generate tokens in the Document360 portal under Settings > API Tokens. Tokens are project-scoped, require the customerApi scope, and do not expire by default. Tokens can be revoked at any time from the portal. Include the token in every request: Authorization: Bearer <your-token>. Alternatively, use the Authorize button below to sign in via OAuth2 Authorization Code flow with PKCE.

FlowAuthorization Code
Authorization URLhttps://identity.document360.net/connect/authorize
Token URLhttps://identity.document360.net/connect/token
Scopes:
customerApiDocument360 Customer API
Path parameters
project_id
string (uuid) Required

The unique identifier of the project. Retrieve project IDs from GET /v3/projects.

Example9a3b4c5d-6e7f-8a9b-0c1d-2e3f4a5b6c7d
category_id
string (uuid) Required

The unique identifier of the category. Retrieve category IDs from GET /v3/projects/{project_id}/categories.

Exampleb4c5d6e7-f8a9-0b1c-2d3e-4f5a6b7c8d9e
Query parameters
lang_code
string

ISO 639-1 language code (e.g., en, fr). Defaults to the project's primary language if omitted.

Pattern^[a-z]{2}(-[A-Z]{2})?$
Exampleen
Body parameters

Updated category settings.

Update category SEO and display settings

Updates the category's slug, SEO title, description, and tags.

{
  "slug": "getting-started",
  "seo_title": "Getting Started - Product Documentation",
  "description": "Comprehensive guides for new users.",
  "allow_comments": true,
  "show_table_of_contents": true,
  "tags": [
    "onboarding",
    "setup"
  ],
  "status_indicator": "updated",
  "status_indicator_expiry_date": null,
  "exclude_from_search": false,
  "exclude_from_ai_search": false,
  "exclude_from_external_search": false,
  "is_acknowledgement_enabled": false
}
object

Request to update category settings.

seo_title
string | null

SEO title override.

description
string | null

Meta description for the category.

allow_comments
boolean | null

Whether to allow reader comments.

show_table_of_contents
boolean | null

Whether to display a table of contents.

tags
Array of string | null

Tags to associate with the category.

string
status_indicator
string | null

Visual status indicator for the category. Possible values: 0 = None, 1 = New, 2 = Updated, 3 = Custom.

Valid values[ "none", "new", "updated", "custom" ]
status_indicator_expiry_date
string (date-time) | null

Expiry date for the status indicator. Only applicable when StatusIndicator is set.

exclude_from_search
boolean | null

Whether to exclude from search results.

exclude_from_ai_search
boolean | null

Whether to exclude from AI-powered search.

exclude_from_external_search
boolean | null

Whether to exclude from external search engines.

is_acknowledgement_enabled
boolean | null

Whether readers must acknowledge reading this category.

Responses
200

Category settings updated successfully.

Category settings retrieved successfully

Returns SEO settings, tags, status indicator, and other configuration for the specified category.

{
  "data": {
    "slug": "getting-started",
    "seo_title": "Getting Started - Product Documentation",
    "description": "Comprehensive guides to help new users get up and running with the platform quickly.",
    "allow_comments": true,
    "show_table_of_contents": true,
    "featured_image_url": "https://cdn.example.com/images/getting-started-banner.png",
    "tags": [
      "onboarding",
      "setup",
      "quickstart"
    ],
    "status_indicator": "updated",
    "status_indicator_expiry_date": "2025-12-31T23:59:59Z",
    "exclude_from_search": false,
    "exclude_from_ai_search": false,
    "exclude_from_external_search": false,
    "is_acknowledgement_enabled": false
  },
  "success": true,
  "request_id": "req_abc123def456",
  "errors": null,
  "warnings": null
}
Expand All
object

Generic API response wrapper containing typed data.

data
object

Response data payload.

slug
string | null

URL-friendly slug for the category.

seo_title
string | null

SEO title override for the category page.

description
string | null

Meta description for the category.

allow_comments
boolean

Whether reader comments are allowed.

show_table_of_contents
boolean

Whether to display a table of contents.

featured_image_url
string | null

URL of the featured image. For private or mixed-visibility projects, a time-limited SAS token is automatically appended.

tags
Array of string | null

Tags associated with the category.

string
status_indicator
string

Visual status indicator for the category. Possible values: 0 = None, 1 = New, 2 = Updated, 3 = Custom.

Valid values[ "none", "new", "updated", "custom" ]
status_indicator_expiry_date
string (date-time) | null

Expiry date for the status indicator. Only applicable when StatusIndicator is set.

exclude_from_search
boolean

Whether to exclude this category from search results.

exclude_from_ai_search
boolean

Whether to exclude this category from AI-powered search.

exclude_from_external_search
boolean

Whether to exclude this category from external search engines.

is_acknowledgement_enabled
boolean

Whether readers must acknowledge reading this category.

success
boolean

Whether the API request was successful.

request_id
string

Unique identifier for request tracing and correlation.

Min length1
errors
Array of object (ApiError) | null

List of errors if the request failed.

object

Represents an error returned by the API.

code
string

Machine-readable error code (e.g. VALIDATION_ERROR, RESOURCE_NOT_FOUND).

Min length1
message
string

Human-readable error message.

Min length1
field
string | null

The request field that caused the error, if applicable.

details
string | null

Additional context about the error.

warnings
Array of object (ApiWarning) | null

List of non-fatal warnings from the request.

object

Represents a non-fatal warning from the API.

code
string

Machine-readable warning code.

Min length1
message
string

Human-readable warning message.

Min length1
400

The request body is malformed or contains invalid JSON.

Expand All
object

RFC 7807 Problem Details response for V3 API errors. Content-Type: application/problem+json

type
string

URI reference identifying the error type (links to documentation).

Min length1
title
string

Short human-readable summary of the error type.

Min length1
status
integer (int32)

HTTP status code.

detail
string | null

Human-readable explanation specific to this occurrence.

instance
string | null

URI of the request that generated the error.

trace_id
string | null

Request trace identifier for correlation.

errors
Array of object (ApiError) | null

Structured list of specific errors (extension field).

object

Represents an error returned by the API.

code
string

Machine-readable error code (e.g. VALIDATION_ERROR, RESOURCE_NOT_FOUND).

Min length1
message
string

Human-readable error message.

Min length1
field
string | null

The request field that caused the error, if applicable.

details
string | null

Additional context about the error.

warnings
Array of object (ApiWarning) | null

Non-fatal warnings (extension field).

object

Represents a non-fatal warning from the API.

code
string

Machine-readable warning code.

Min length1
message
string

Human-readable warning message.

Min length1
401

Authentication token is missing or invalid.

Headers
WWW-Authenticate
string
Indicates the authentication scheme required. Returns `Bearer` with optional `error` and `error_description` parameters per RFC 6750.
Missing or invalid token

Authentication token is missing or invalid.

{
  "type": "https://developer.document360.com/errors/unauthorized",
  "title": "Unauthorized.",
  "status": 401,
  "detail": "The authentication token is missing or has expired.",
  "instance": null,
  "trace_id": "req_abc123def456",
  "errors": [
    {
      "code": "UNAUTHORIZED",
      "message": "Bearer token is missing or invalid.",
      "field": null,
      "details": null
    }
  ],
  "warnings": null
}
Expand All
object

RFC 7807 Problem Details response for V3 API errors. Content-Type: application/problem+json

type
string

URI reference identifying the error type (links to documentation).

Min length1
title
string

Short human-readable summary of the error type.

Min length1
status
integer (int32)

HTTP status code.

detail
string | null

Human-readable explanation specific to this occurrence.

instance
string | null

URI of the request that generated the error.

trace_id
string | null

Request trace identifier for correlation.

errors
Array of object (ApiError) | null

Structured list of specific errors (extension field).

object

Represents an error returned by the API.

code
string

Machine-readable error code (e.g. VALIDATION_ERROR, RESOURCE_NOT_FOUND).

Min length1
message
string

Human-readable error message.

Min length1
field
string | null

The request field that caused the error, if applicable.

details
string | null

Additional context about the error.

warnings
Array of object (ApiWarning) | null

Non-fatal warnings (extension field).

object

Represents a non-fatal warning from the API.

code
string

Machine-readable warning code.

Min length1
message
string

Human-readable warning message.

Min length1
404

Category not found.

Resource not found

The requested resource was not found.

{
  "type": "https://developer.document360.com/errors/not-found",
  "title": "Not Found.",
  "status": 404,
  "detail": "The requested resource does not exist or has been deleted.",
  "instance": null,
  "trace_id": "req_abc123def456",
  "errors": [
    {
      "code": "RESOURCE_NOT_FOUND",
      "message": "The requested resource was not found.",
      "field": null,
      "details": null
    }
  ],
  "warnings": null
}
Expand All
object

RFC 7807 Problem Details response for V3 API errors. Content-Type: application/problem+json

type
string

URI reference identifying the error type (links to documentation).

Min length1
title
string

Short human-readable summary of the error type.

Min length1
status
integer (int32)

HTTP status code.

detail
string | null

Human-readable explanation specific to this occurrence.

instance
string | null

URI of the request that generated the error.

trace_id
string | null

Request trace identifier for correlation.

errors
Array of object (ApiError) | null

Structured list of specific errors (extension field).

object

Represents an error returned by the API.

code
string

Machine-readable error code (e.g. VALIDATION_ERROR, RESOURCE_NOT_FOUND).

Min length1
message
string

Human-readable error message.

Min length1
field
string | null

The request field that caused the error, if applicable.

details
string | null

Additional context about the error.

warnings
Array of object (ApiWarning) | null

Non-fatal warnings (extension field).

object

Represents a non-fatal warning from the API.

code
string

Machine-readable warning code.

Min length1
message
string

Human-readable warning message.

Min length1
422

Validation failed.

Validation failed

The request body contains invalid data.

{
  "type": "https://developer.document360.com/errors/validation-error",
  "title": "Unprocessable Entity.",
  "status": 422,
  "detail": "One or more fields failed validation.",
  "instance": null,
  "trace_id": "req_abc123def456",
  "errors": [
    {
      "code": "VALIDATION_ERROR",
      "message": "This field is required.",
      "field": "title",
      "details": null
    }
  ],
  "warnings": null
}
Expand All
object

RFC 7807 Problem Details response for V3 API errors. Content-Type: application/problem+json

type
string

URI reference identifying the error type (links to documentation).

Min length1
title
string

Short human-readable summary of the error type.

Min length1
status
integer (int32)

HTTP status code.

detail
string | null

Human-readable explanation specific to this occurrence.

instance
string | null

URI of the request that generated the error.

trace_id
string | null

Request trace identifier for correlation.

errors
Array of object (ApiError) | null

Structured list of specific errors (extension field).

object

Represents an error returned by the API.

code
string

Machine-readable error code (e.g. VALIDATION_ERROR, RESOURCE_NOT_FOUND).

Min length1
message
string

Human-readable error message.

Min length1
field
string | null

The request field that caused the error, if applicable.

details
string | null

Additional context about the error.

warnings
Array of object (ApiWarning) | null

Non-fatal warnings (extension field).

object

Represents a non-fatal warning from the API.

code
string

Machine-readable warning code.

Min length1
message
string

Human-readable warning message.

Min length1
429

Rate limit exceeded. Retry after the duration specified in the Retry-After header.

Headers
Retry-After
integer
Number of seconds to wait before retrying the request. Use exponential backoff with jitter for optimal retry behavior.
X-RateLimit-Limit
integer
The maximum number of requests allowed in the current time window. Limits are applied per API token per project.
X-RateLimit-Remaining
integer
The number of requests remaining in the current time window. When this reaches 0, subsequent requests will receive a 429 response.
X-RateLimit-Reset
integer
The UTC epoch timestamp (in seconds) when the current rate limit window resets.
Rate limit exceeded

Rate limit exceeded.

{
  "type": "https://developer.document360.com/errors/too-many-requests",
  "title": "Too Many Requests.",
  "status": 429,
  "detail": "Rate limit exceeded. Retry after the duration specified in the Retry-After header.",
  "instance": null,
  "trace_id": "req_abc123def456",
  "errors": [
    {
      "code": "TOO_MANY_REQUESTS",
      "message": "Rate limit exceeded. Retry after the duration specified in the Retry-After header.",
      "field": null,
      "details": null
    }
  ],
  "warnings": null
}
Expand All
object

RFC 7807 Problem Details response for V3 API errors. Content-Type: application/problem+json

type
string

URI reference identifying the error type (links to documentation).

Min length1
title
string

Short human-readable summary of the error type.

Min length1
status
integer (int32)

HTTP status code.

detail
string | null

Human-readable explanation specific to this occurrence.

instance
string | null

URI of the request that generated the error.

trace_id
string | null

Request trace identifier for correlation.

errors
Array of object (ApiError) | null

Structured list of specific errors (extension field).

object

Represents an error returned by the API.

code
string

Machine-readable error code (e.g. VALIDATION_ERROR, RESOURCE_NOT_FOUND).

Min length1
message
string

Human-readable error message.

Min length1
field
string | null

The request field that caused the error, if applicable.

details
string | null

Additional context about the error.

warnings
Array of object (ApiWarning) | null

Non-fatal warnings (extension field).

object

Represents a non-fatal warning from the API.

code
string

Machine-readable warning code.

Min length1
message
string

Human-readable warning message.

Min length1
500

An unexpected server error occurred.

Unexpected server error

Unexpected server error.

{
  "type": "https://developer.document360.com/errors/internal-error",
  "title": "Internal Server Error.",
  "status": 500,
  "detail": "An unexpected error occurred. Please try again or contact support.",
  "instance": null,
  "trace_id": "req_abc123def456",
  "errors": [
    {
      "code": "INTERNAL_SERVER_ERROR",
      "message": "An unexpected error occurred.",
      "field": null,
      "details": null
    }
  ],
  "warnings": null
}
Expand All
object

RFC 7807 Problem Details response for V3 API errors. Content-Type: application/problem+json

type
string

URI reference identifying the error type (links to documentation).

Min length1
title
string

Short human-readable summary of the error type.

Min length1
status
integer (int32)

HTTP status code.

detail
string | null

Human-readable explanation specific to this occurrence.

instance
string | null

URI of the request that generated the error.

trace_id
string | null

Request trace identifier for correlation.

errors
Array of object (ApiError) | null

Structured list of specific errors (extension field).

object

Represents an error returned by the API.

code
string

Machine-readable error code (e.g. VALIDATION_ERROR, RESOURCE_NOT_FOUND).

Min length1
message
string

Human-readable error message.

Min length1
field
string | null

The request field that caused the error, if applicable.

details
string | null

Additional context about the error.

warnings
Array of object (ApiWarning) | null

Non-fatal warnings (extension field).

object

Represents a non-fatal warning from the API.

code
string

Machine-readable warning code.

Min length1
message
string

Human-readable warning message.

Min length1

Was this article helpful?